<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

include '../config/config_services.php';

/**
 * Asigna Formato de Moneda a un String
 *
 * Si se envia un valor de un texto extraido en formato plano, es decir sin
 * puntuacion se toma por defecto dos decimales. Y realiza la asignacion en el numero.
 *
 * @autor Wilmer Machuca <wilmer-machuca@hotmail.com>
 *
 * @param string $valor Valor al que se le asigna el formato
 * @param integer $decimales Cantidad de decimales para asignar al fomato
 * @param bool $coma Especifica si viene la coma en el texto, falso por defecto
 * @param string $signo Signo de moneda a usar defecto:$
 * @return string Retorna el texto enviado formateado en moneda.
 */
function formatear_moneda($valor, $decimales = 2, $coma = false, $signo = "$") {
    if ($coma == false) {
        $p1 = substr($valor, 0, -$decimales);
        $p2 = substr($valor, -$decimales);
        $numero = "$p1.$p2";
    }
    $numero = doubleval($numero);
    $numero = $signo . ' ' . number_format($numero, 2, '.', ',');
    return $numero;
}

/**
 * Asigna Formato de Fecha a un String
 *
 * Si se envia un valor de un texto extraido en formato plano, es decir sin
 * puntuacion se toma por defecto dos decimales. Y realiza la asignacion en el numero.
 *
 * @autor Wilmer Machuca <wilmer-machuca@hotmail.com>
 *
 * @param string $valor Valor al que se le asigna el formato
 * @param string $formato Formato de la Fecha defecto 'Y/m/d'
 * @return string Retorna el texto enviado formateado en fecha.
 */
function formatear_fecha($valor, $formato = 'Y/m/d') {
    $y = substr($valor, 0, 4);
    $m = substr($valor, 4, 2);
    $d = substr($valor, 6, 2);
    $f = "$y/$m/$d";
    $fecha = date($formato, strtotime($f));
    return $fecha;
}

function transformarPredioJSON($objetoJSON, $xoopsDB) {

//    var_dump($objetoJSON);
    
    include '../class/class.familias.php';
    include '../class/class.predio.php';
    include '../class/class.parametros.php';
//    var_dump("aca fue");
    
    $parametros = new parametros();
    $predios = array();

    $contador = 0;

    foreach ($objetoJSON->features as $feature) {

//        var_dump($feature);
        
        $predio = new predio();
        $familia = new familias();

//        $idgis = $feature->id;
        $idgis = $feature->properties->id_envio;
        
//        var_dump($idgis);
        
        $existe = $predio->consultarByIdGis($idgis, $xoopsDB);

//        var_dump($existe); 
        
        if (!$existe) {

            $propiedades = $feature->properties;

            $familia->setTipo_identificacion("1");
            $familia->setIdentificacion($propiedades->r10);
            $familia->setNombres($propiedades->r9);
            $familia->setApellidos("");
            $familia->setDescripcion_familia($propiedades->r11);
            $familia->setNumero_cuenta($propiedades->r14);
            $familia->setBanco_cuenta($propiedades->r15);
            $familia->setEstado("A");
            $familia->setEstrato($propiedades->r12);
            $familia->setActividadEconomica($propiedades->r13);

            $predio->setActividad_economica($propiedades->r13);
            $predio->setDescripcion($propiedades->r1);
            $predio->setNombre($propiedades->r1);
            $predio->setEstrato($propiedades->r12);
            $predio->setMatricula($propiedades->r2);
            $predio->setHectareas_total($propiedades->r3);
            $predio->setIddepartamento("1");
            $predio->setIdmunicipio($propiedades->codigo_mun);
            $predio->setCuencas($propiedades->r4);
            $predio->setFuentes($propiedades->r5);
            $predio->setAcueducto($propiedades->r6);
            $predio->setFormaciones($propiedades->r7);
            $predio->setHectareas_conservar($propiedades->r8);
            $predio->setInfo_juridica("0"); //validar que deberia ir en este campo
            $predio->setId_gis($propiedades->id_envio); //tener en cuenta que se toma sola la parte de id_envio
            $predio->setId($propiedades->id); //tener en cuenta que se toma sola la parte de id_envio

            $urlFotos = $propiedades->url_fotos;
            
            $nextFamilia = $familia->consultarNextId($xoopsDB);
            $nextPredio = $predio->consultarNextId($xoopsDB);

            $res = $familia->insert($xoopsDB);
            $res = $predio->insert($xoopsDB);
            $res = $parametros->insertFamilia_Predio($nextFamilia, $nextPredio, $xoopsDB);

            if ($urlFotos != null){
                $res = $parametros->insertUrlFotos($nextFamilia, $urlFotos, $xoopsDB);
            }
            
            $predios[$contador] = $predio;
        }

        $contador++;
    }

    return $predios;
}

function consumirServicioPredios() {

    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, RUTA_SERVICIO);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);

    $json_output = json_decode($data);

    return $json_output;
}

?>
